/*
 *    Copyright 2022 jacky4631 shen ji email:121659050@qq.com
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

package com.dataoke.shoppingguide.app773026.activity.webview;

import android.app.Activity;
import android.webkit.WebSettings;
import android.webkit.WebView;
/**
 *
 * @author: shen ji
 * @date: 2022/3/15
 * @email: 121659050@qq.com
 * @wechat: jacky4631
 */
public class WebViewUtil {
    public static void init(Activity context, WebView webView) {
        initInternal(webView);
        // 确保跳转到另一个网页时仍然在当前 WebView 中显示
        // 而不是调用浏览器打开
        BaseWebViewClient webViewClient = new BaseWebViewClient(context);
        webView.setWebViewClient(webViewClient);
        webView.setWebChromeClient(new BaseWebChromeClient(context));
        webView.setOnScrollChangeListener((v, scrollX, scrollY, oldScrollX, oldScrollY) -> {
            webViewClient.setScrollY(oldScrollY);
        });

    }

    public static void initDetail(Activity context, WebView webView) {
        initInternal(webView);
        // 确保跳转到另一个网页时仍然在当前 WebView 中显示
        // 而不是调用浏览器打开
        DetailWebViewClient webViewClient = new DetailWebViewClient(context);
        webView.setWebViewClient(webViewClient);
        webView.setOnScrollChangeListener((v, scrollX, scrollY, oldScrollX, oldScrollY) -> {
            webViewClient.setScrollY(oldScrollY);
        });
    }
    protected  static void initInternal(WebView webView) {
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setJavaScriptCanOpenWindowsAutomatically(true);

        webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);

        webSettings.setDomStorageEnabled(true);

        webSettings.setDatabaseEnabled(true);

        webSettings.setAllowFileAccess(true);

        webSettings.setSupportZoom(true);

        webSettings.setBuiltInZoomControls(true);

        webSettings.setUseWideViewPort(true);

        webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
    }
}
